home *** CD-ROM | disk | FTP | other *** search
-
- .286
- Print MACRO Symbol
- MOV AH,09h
- MOV DX,OFFSET Symbol
- INT 21h
- ENDM
-
- Int10 SEGMENT
- ORG 100h
- ASSUME CS:Int10
- Start: JMP Installation
-
- Save10 LABEL DWORD
- Int10Ofs WORD ?
- Int10Seg WORD ?
- IDString DB "T!" ; a little string to recognize myself ;-)
-
- NewInt10 PROC FAR
-
- CMP AX,4F02h
- JE VesaTest
-
- JMP LetsGo
-
- ; Boost VESA modes (even SciTech's ones !)
-
- VesaTest: PUSH BX
- AND BX,1FFh
-
- CMP BX,10dh ;320x200x32k
- JE bit_15
- CMP BX,12fh ;360x200x32k
- JE bit_15
- CMP BX,12dh ;320x240x32k
- JE bit_15
- CMP BX,130h ;360x240x32k
- JE bit_15
- CMP BX,12eh ;320x400x32k
- JE bit_15
- CMP BX,131h ;360x400x32k
- JE bit_15
- CMP BX,11dh ;640x350x32k
- JE bit_15
- CMP BX,11eh ;640x400x32k
- JE bit_15
- CMP BX,110h ;640x480x32k
- JE bit_15
- CMP BX,113h ;800x600x32k
- JE bit_15
- CMP BX,116h ;1024x768x32k
- JE bit_15
- CMP BX,119h ;1280x1024x32k
- JE bit_15
-
- CMP BX,10eh ;320x200x64k
- JE bit_16
- CMP BX,134h ;360x200x64k
- JE bit_16
- CMP BX,132h ;320x240x64k
- JE bit_16
- CMP BX,135h ;360x240x64k
- JE bit_16
- CMP BX,133h ;320x400x64k
- JE bit_16
- CMP BX,136h ;360x400x64k
- JE bit_16
- CMP BX,11fh ;640x350x64k
- JE bit_16
- CMP BX,120h ;640x400x64k
- JE bit_16
- CMP BX,111h ;640x480x64k
- JE bit_16
- CMP BX,114h ;800x600x64k
- JE bit_16
- CMP BX,117h ;1024x768x64k
- JE bit_16
- CMP BX,11ah ;1280x1024x64k
- JE bit_16
-
- CMP BX,10fh ;320x200x16m
- JE bit_24
- CMP BX,137h ;320x240x16m
- JE bit_24
- CMP BX,138h ;320x400x16m
- JE bit_24
- CMP BX,121h ;640x350x16m
- JE bit_24
- CMP BX,122h ;640x400x16m
- JE bit_24
- CMP BX,112h ;640x480x16m
- JE bit_24
- CMP BX,115h ;800x600x16m
- JE bit_24
- CMP BX,118h ;1024x768x16m
- JE bit_24
- CMP BX,11bh ;1280x1024x16m
- JE bit_24
-
- ; else normal !!!
- POP BX
-
- LetsGo: JMP OnlyCall
-
- bit_15: MOV CS:[patch+1],4 ; 15/16 bits mode -> pixel depth
- MOV CS:[patch2+1],010h ; 15 bit
- jmp VasY
- bit_16: MOV CS:[patch+1],4 ; 15/16 bits mode -> pixel depth
- MOV CS:[patch2+1],030h ; 16 bit
- jmp VasY
- bit_24: MOV CS:[patch+1],8 ; 24 bits mode
- MOV CS:[patch2+1],0D0h ; 24 bit
-
-
- VasY: ; do my own stack frame ;-) !
- POP BX
-
- PUSHF
- PUSH CS
- PUSH OFFSET Adding
-
- OnlyCall: JMP Save10
-
- Adding: PUSH AX
- PUSH DX
-
- MOV DX,3C8h ; active DAC
- IN AL,DX ; reset to normal mode
- MOV DX,3C6h
- IN AL,DX
- IN AL,DX
- IN AL,DX
- IN AL,DX
- patch2 LABEL BYTE
- MOV AL,010h
- OUT DX,AL ; new value
- MOV DX,3C8h
- IN AL,DX ; back to normal mode
-
- MOV DX,3D4h ; set pixel depth !!!
- MOV AL,38h
- OUT DX,AL
- INC DL
- IN AL,DX
- AND AL,NOT(4+8)
- patch LABEL BYTE
- OR AL,4
- OUT DX,AL
-
- POP DX
- POP AX
-
- IRET
-
- NewInt10 ENDP
-
- EndOfResident:
-
- ; Hey this looks like some Sam'code ;-) !!!!
-
- Copyright DB "Trident 9440AGi fix for UniVBE 5.1a!",10,13
- DB "Coded by Type One 1995 - $"
- Install DB "INSTALLED",10,13,"$"
- Remove DB "REMOVED",10,13,"$"
-
- installation: MOV AX,CS
- MOV DS,AX
- Print Copyright
- MOV AX,3510h ; routine déjà en mem ?
- INT 21h
- CMP WORD PTR ES:[BX-2],"!T"
- JNE PutInMem ; non
- Print Remove
- MOV AX,ES:Int10Seg ; ES % au prg en mem
- MOV DS,AX
- MOV AX,2510h
- MOV DX,ES:Int10Ofs
- INT 21h ; restaure ancien gestionnaire
- MOV BX,ES
- MOV ES,ES:[2Ch]
- MOV AH,49h
- INT 21h ; libère l'environnement
- MOV ES,BX
- MOV AH,49h
- INT 21h ; libère le prog
- MOV AX,4C00h
- INT 21h ; fin
-
- PutInMem: Print Install
- MOV Int10Ofs,BX ; sauve l'ancien gestionnaire
- MOV Int10Seg,ES
- MOV AX,2510h
- MOV DX,OFFSET NewInt10
- INT 21h ; met mon gestionnaire en place
- MOV DX,EndOfResident-Start+100h+15 ; = l'age du capitaine
- MOV CL,4
- SHR DX,CL
- XOR AL,AL
- MOV AH,31h
- INT 21h ; fin et rester résident
-
- Int10 ENDS
- END Start
-